﻿

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using DECOR.BL.BE;
using DECOR.BL.BC;
using System.Collections.Generic;


namespace DECOR.WebApp
{
    public partial class DocImprInst : System.Web.UI.Page
    {
        private List<InstalaBE> lstDetalle = new List<InstalaBE>();

        protected void Page_Init(object sender, EventArgs e)
        {
            //this.validaLogin();
        }

        private void validaLogin()
        {
            //if (Session["UsuarioWeb"] == null || Session["UsuarioSAP"] == null)
            //{
            //    Response.Redirect("Login.aspx");
            //    //en vez de redireccionar, debería cerrar la pantalla
            //}
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!Page.IsPostBack)
                {
                    string numeroPedido = "";
                    string igv = ""; //rgutierrez 11.11.2011
                    if (Request.QueryString["np"] != null)
                    {
                        numeroPedido = Request.QueryString["np"].ToString();

                        //rgutierrez 11.11.2011
                        igv = Request.QueryString["vIGV"].ToString();
                        lblTextoIGV.Text = "I.G.V. (" + igv + "%)";
                    }

                    if (!numeroPedido.Equals(""))
                    {
                        PedidoBE objPedido;
                        if (Session["PedidoImpr"] == null)
                        {
                            objPedido = PedidoBC.Instance.leer(numeroPedido);
                        }
                        else
                        {
                            objPedido = (PedidoBE)Session["PedidoImpr"];
                        }

                        if (objPedido != null)
                        {
                            // Obtengo Direccion
                            string pDireccion = "", pTelefono = "", pFax = "", pAtencion = "";
                            PedidoBC.Instance.buscaDatosImpresion(numeroPedido, out pDireccion, out pTelefono, out pFax, out pAtencion);
                            lblDireccionLogo.Text = pDireccion;

                            //sociedad Decor Center 
                            string[] words = pTelefono.Split('%');
                            pTelefono = words[0];
                            lblSociedad.Text = "DECOR CENTER";
                            lblSociedadtxt.Text = words[1];
                            //------------------------------------------
                            
                            lblTelefonosLogo.Text = pTelefono + (pFax == "" ? "" : ", " + pFax);
                            //lblAtt.Text = pAtencion;


                            lblFecha.Text = objPedido.Fecha.ToShortDateString();

                            lblCoti.Text = "PROPUESTA DE SERVICIO DE INSTALACIÓN ";


                            lblCotiza.Text = objPedido.NumPedido;

                            //lblValor.Text = ParametroBC.Instance.getParamValue(objPedido.Moneda) + " " + string.Format("{0:n2}", objPedido.SubTotal);
                            //lblIgv.Text = string.Format("{0:n2}", objPedido.Igv);
                            //lblTotal.Text = ParametroBC.Instance.getParamValue(objPedido.Moneda) + " " + string.Format("{0:n2}", objPedido.Total);

                            //si es un pedido de transporte cambia cantidad x pesoneto
                            //if (objPedido.CodTipoDoc.Equals(ParametroBC.Instance.getParamValue("CodTransporte")))
                            //{
                            //    foreach (DetalleBE objDetalle in objPedido.Detalle)
                            //    {
                            //        //objDetalle.Peso = objDetalle.Cantidad;
                            //        //objDetalle.Cantidad = 1m;
                            //    }
                            //}

                            //--- quitar componentes de la oferta


                            this.lstDetalle = (List<InstalaBE>)Session["listadoInstalacion"];
                            if (lstDetalle == null || lstDetalle.Count <= 0)
                            {
                                lstDetalle = PedidoBC.Instance.listadoInstalacion(objPedido.NumPedido);
                            }
                            GdvLista.DataSource = this.lstDetalle;
                            GdvLista.DataBind();

                            decimal total = 0;
                            foreach (InstalaBE ls_instala in lstDetalle)
                            {
                                total = total + ls_instala.Total;
                            }

                            //rgutierrez 11.11.2011
                            decimal valorTotal = total * (1 + Convert.ToDecimal(igv)/100);
                            lblValorNeto.Text = string.Format("{0:n2}", Math.Round(total, 2).ToString());
                            lblImporteIGV.Text = string.Format("{0:n2}",(Math.Round(total * Convert.ToDecimal(igv)/100,2)  ).ToString());

                            lblTotal.Text = ParametroBC.Instance.getParamValue(objPedido.Moneda) + " " + string.Format("{0:n2}", Math.Round(valorTotal,2).ToString());//RGF 20111026
                            //lblTotal.Text = ParametroBC.Instance.getParamValue(objPedido.Moneda) + " " + string.Format("{0:n2}", objPedido.TotalImp);

                            Session["listadoInstalacion"] = null; //RGF 20111027
                        }
                        else
                        {
                            throw new Exception("No se encontró el doc. de ventas.");
                        }
                    }
                    else
                    {
                        throw new Exception("No se especificó el doc. de ventas.");
                    }
                }
            }
            catch (Exception ex)
            {
                Response.Write("<h4>No se puede mostrar la información.<br />Error: " + ex.Message + "</h4>");
                Page.Visible = false;
            }
        }
    }

}

